Описание
Создает новый объект Index (только в рабочей области ядра
Microsoft Jet).
Set индекс = таблица.CreateIndex (имя)
Параметры
индекс
Объектная переменная, задающая создаваемый
индекс.
таблица
Объектная переменная, задающая объект
TableDef, который используется для создания нового объекта
Index.
имя
Необязательный. Выражение или переменная типа
Variant (подтип String), содержащая уникальное имя нового объекта
Index. Сведения о допустимых именах индексов приведены в разделе о
свойстве Name.
Замечания
Метод CreateIndex используется при создании нового
объекта Index для объекта TableDef. Если опустить необязательный
аргумент имя при вызове метода CreateIndex, то можно воспользоваться
подходящей инструкцией присваивания для задания или изменения значения свойства
Name перед добавлением нового объекта в семейство. После добавления
нового объекта в семейство возможность изменения значения свойства Name
будет определяться типом объекта, содержащего семейство Indexes.
Дополнительные сведения приведены в разделе, посвященном свойству
Name.
Если аргумент имя указывает на объект, который уже добавлен в
семейство, то при вызове метода Append возникает ошибка
выполнения.
Для удаления объекта Index из семейства следует применить
к семейству метод Delete.
Пример
Следующая программа использует метод CreateIndex для
создания двух новых объектов Index, а затем добавляет их в семейство
Indexes объекта TableDef "Сотрудники". Далее отображаются
семейство Indexes объекта TableDef, семейства Fields новых
Index и семейства Properties новых объектов Index. Для
выполнения этой процедуры требуется функция CreateIndexOutput.
Sub CreateIndexX()
Dim dbsNorthwind As Database
Dim tdfEmployees As TableDef
Dim idxCountry As Index
Dim idxFirstName As Index
Dim idxLoop As Index
Set dbsNorthwind = OpenDatabase("Борей.mdb")
Set tdfEmployees = dbsNorthwind!Сотрудники
With tdfEmployees
' Создает первый объект Index, создает и добавляет объекты
' Field в объект Index, а затем добавляет объект
' Index в семейство Indexes объекта TableDef.
Set idxCountry = .CreateIndex("ИндексСтрана")
With idxCountry
.Fields.Append .CreateField("Страна")
.Fields.Append .CreateField("Фамилия")
.Fields.Append .CreateField("Имя")
End With
.Indexes.Append idxCountry
' Создает второй объект Index, создает и добавляет объекты
' Field в объект Index, а затем добавляет объект
' Index в семейство Indexes объекта TableDef.
Set idxFirstName = .CreateIndex
With idxFirstName
.Name = "ИндексИмя"
.Fields.Append .CreateField("Имя")
.Fields.Append .CreateField("Фамилия")
End With
.Indexes.Append idxFirstName
' Обновляет семейство, чтобы обеспечить
' доступ к новым объектам Index.
.Indexes.Refresh
Debug.Print .Indexes.Count & " Индексы в " & .Name & " TableDef"
' Отображает семейство Indexes.
For Each idxLoop In .Indexes
Debug.Print " " & idxLoop.Name
Next idxLoop
' Печатает отчет.
CreateIndexOutput idxCountry
CreateIndexOutput idxFirstName
' Удаляет новые объекты Index, созданные
' только для демонстрации.
.Indexes.Delete idxCountry.Name
.Indexes.Delete idxFirstName.Name
End With
dbsNorthwind.Close
End Sub
Function CreateIndexOutput(idxTemp As Index)
Dim fldLoop As Field
Dim prpLoop As Property
With idxTemp
' Отображает семейство Fields объекта Index.
Debug.Print "Поля в " & .Name
For Each fldLoop In .Fields
Debug.Print " " & fldLoop.Name
Next fldLoop
' Отображает семейство Properties объекта Index.
Debug.Print "Свойства " & .Name
For Each prpLoop In .Properties
Debug.Print " " & prpLoop.Name & " - " & IIf(prpLoop = "", "[empty]", prpLoop)
Next prpLoop
End With
End Function